curl_upkeep
执行任何连接维护检查
curl_upkeep
PHP 7.0 及以上版本
curl_upkeep 函数用于维持一个已初始化的 cURL 句柄(资源)的活跃状态,防止连接超时或断开,适合长时间保持会话或连接的场景。该函数通过发送轻量的心跳请求或特定操作,确保连接持续有效。
curl_upkeep(CurlHandle $ch): bool
成功时返回 true,失败时返回 false。
$result = curl_exec($ch);
// 恢复原来的选项,防止影响后续请求
curl_setopt($ch, CURLOPT_NOBODY, false);
return $result !== false;
}
// 使用示例
$ch = curl_init('https://example.com/api/session');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// 首次请求
$response = curl_exec($ch);
// 维持连接
if (curl_upkeep($ch)) {
echo "连接保持成功";
} else {
echo "连接保持失败";
}
curl_close($ch);
示例中,首先通过 curl_init 初始化一个 cURL 句柄,并设置基础选项。然后使用 curl_exec 发送初始请求。接着调用 curl_upkeep 函数,通过发送一个轻量的 HEAD 请求维持连接,防止会话超时。函数内临时设置了 CURLOPT_NOBODY 为 true,只请求响应头,从而降低数据传输量,最后恢复原设置,确保后续请求正常。函数返回布尔值,表示保持连接的操作是否成功。